<?php

namespace Seguridad\Controller\Service;

use Zend\Db\Adapter\Adapter;
use Componentes\Controller\UtilsArrayController;
use Seguridad\Model\Entity\Grupo;
use Seguridad\Controller\Service\GenericService;

//SERVICIO
class GrupoService extends GenericService {

    /**
     * @var Zend\Db\Adapter\Adapter 
     */
    private $dbAdapter;
    private static $grupoService;

    /**
     * @param \Zend\Db\Adapter\Adapter $dbAdapter
     */
    private function __construct(Adapter $dbAdapter) {
        $this->dbAdapter = $dbAdapter;
    }

    public static function getInstance($adapter) {
        if (self::$grupoService == null) {
            self::$grupoService = new GrupoService($adapter);
        }
        return self::$grupoService;
    }

    public function getGrupoDao() {
        return \Seguridad\Model\Dao\GrupoDAO::getInstance($this->dbAdapter);
    }

    /**
     * @param type $id
     * @return type
     */
    public function getRegistro($id) {
        $grupo = $this->obtenerGrupoSegunId($id);
        $data[0] = $grupo->objectToArray();
        $output = array(
            'success' => true,
            'data' => $data,
            'total' => count($data)
        );
        return $output;
    }

//------Retornan los objetos--------

    /**
     * Dado el id del grupo se trae los registros asociados de la tabla grupo
     * luego el primero lo transforma en un obj y ese lo retorna
     * @param $id type int
     * @return Objeto Alumno
     */
    public function obtenerGrupoSegunId($id) {
        $registros = $this->getGrupoDao()->getRegistro($id);
        $data = UtilsArrayController::llenarData($registros);
        $grupo = new Grupo($data[0]);
        return $grupo;
    }
    
//---------------------------------
}
